In a multicast data distribution set-up a sender ("a source"), sends multicast data messages to a plurality of receivers called a multicast group. The sender's data rate is preconfigured or dynamically determined. Receivers in the multicast group provide the sender with data reception feedback in the form of repair requests. The sender responds to the data reception feedback by retransmitting the data to the multicast group.
The sender can operate in a mode that is either sensitive or insensitive to the data reception feedback, depending upon what the design goal is. A sender that is sensitive to data reception feedback responds to all or nearly all of the repair requests sent by receivers. A sensitive sender provides very reliable data transmission but it can be slow where there are a large number of receivers. When numerous receivers send repair requests, the sender uses a higher percentage of its available resources for servicing repair requests and has less resources available for performing other tasks such as sending more data. The result is a drop in the sender's performance.
Operating in an insensitive mode enables the sender to operate more quickly, but has some drawbacks. An insensitive sender ignores some repair requests, resulting in the sender being able to perform faster but also reducing the reliability of the data transmission if there are a large number of receivers. However, there are drawbacks such as not being responsive to network congestion, not being network friendly and being unable to deliver data to as many receivers as possible.
One way to overcome these problems is to implement pruning techniques. Pruning techniques involve identifying receivers which reduce the overall performance of the sender and removing them from the network so that the sender will perform faster. Currently available pruning techniques rely on either the sender or the receiver to perform the pruning. Both techniques prune unresponsive receivers from the data distribution set-up. As receivers are pruned from the data distribution set-up, the sender is left with fewer receivers from which it can expect to receive repair requests. Sender-initiated pruning techniques are entirely under the sender's control and remove receivers that are too slow, for example, receivers that operate at a much lower data rate than the sender. Receiver-initiated pruning techniques operate by having the receivers voluntarily prune themselves if they can not keep up with the sender's data rate. One problem with sender-initiated pruning techniques is that they tend to become less reliable as the number of receivers in the multicast group grows, because the sender becomes overloaded from servicing the large number of group members.
Receiver-initiated pruning techniques operate from the receiver as opposed to from the sender. Each receiver tracks whether or not it is able to respond to the data rate of the sender. The lightweight reliable multicast protocol (LRMP) uses this technique. In the receiver initiated pruning model, when a receiver detects that it is unable to keep up with the sender's data rate, it voluntarily prunes itself from the multicast data distribution tree. One problem with the receiver initiated pruning is that receivers may prune themselves prematurely in a situation where the sender may have been able to accommodate them by reducing its data rate.